hysop.backend.device.codegen.kernels.directional_advection module

class hysop.backend.device.codegen.kernels.directional_advection.DirectionalAdvectionKernelGenerator(typegen, work_dim, ftype, is_cached, rk_scheme, vboundary, nparticles, relative_velocity, offset_by_xmin=False, min_ghosts=0, use_short_circuit=None, unroll_loops=None, symbolic_mode=False, debug_mode=False, tuning_mode=False, known_vars=None, is_bilevel=None)[source]

Bases: KernelCodeGenerator

classmethod advec_ghosts(velocity_cfl)[source]

Return the minimal numbers of ghosts required on the lasr axe of the velocity grid.

build_requirements(typegen, work_dim, itype, ftype, is_cached, rk_scheme, vboundary, relative_velocity, nparticles, force_symbolic, storage, is_periodic, known_vars)[source]
static codegen_name(ftype, is_cached, rk_scheme, nparticles, min_ghosts, relative_velocity, bilevel, **kargs)[source]
gen_kernel_arguments(typegen, work_dim, itype, ftype, requirements, is_cached, cache_size_known, debug_mode, known_vars, symbolic_mode)[source]
gencode()[source]
classmethod min_ghosts(work_dim, velocity_cfl)[source]

Return the minimal numbers of ghosts required on the velocity grid.

classmethod min_wg_size(work_dim, velocity_cfl)[source]

Return the minimum workgroup size.

required_workgroup_cache_size(local_work_size)[source]

Return a tuple of required (static,dynamic,total) cache bytes per workgroup.

required_workgroup_velocity_cache_size()[source]